package cn.sq.musicserver.music.entity;

import cn.sq.musicserver.plug.entity.PlugSearchResult;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.HashMap;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: SQ
 * Date: 2020/12/18
 * Time: 17:07
 * Description: 下载音乐时候需要的参数
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="音乐下载对象", description="SqMusic对象")
public class DownloadParam   {

    @ApiModelProperty(value = "是否下载歌词--如果下载则会覆盖MusicLyric",example = "true" ,notes = "downliadMusicLyric")
    private boolean downliadMusicLyric;

    @ApiModelProperty(value = "是否下载图像--如果下载musicImage写url地址",example = "true" ,notes = "musicImage传 http://image.png")
    private boolean downliadMusicImage;

    @ApiModelProperty(value = "是否临时缓存",example = "true" ,notes = "true则进入临时缓存目录否则则是下载歌曲到下载目录")
    private boolean temp;

    @ApiModelProperty(value = "下载音乐id" ,notes = "搜索时返回的音乐id")
    String id;
    @ApiModelProperty(value = "undefined",example ="undefined" )
    String mediaId;
    //固定参数
    @ApiModelProperty(value = "下载类型（音质）",example = "",notes = "支持参数 128， 320 ，flac")
    String br;
    //平台类型 qq 163
    @ApiModelProperty(value = "平台类型",example = "qq" ,notes = "目前仅支持 qq")
    String type_p;
    @ApiModelProperty(value = "歌曲名称",example = "星晴")
     String musicName;

    @ApiModelProperty(value = "歌曲作者",example = "周杰伦")
     String musicArtists;

    @ApiModelProperty(value = "专辑信息",example = "Jay")
     String musicAlbum;

    @ApiModelProperty(value = "歌词",example = "" ,notes ="downliadMusicLyric为true则自动下载歌词忽略此字段" )
     String musicLyric;

    @ApiModelProperty(value = "歌曲封面(Base64)" ,notes = "downliadMusicImage为true 此字段传递http的网络地址 会自动进行下载")
     String musicImage;

    @ApiModelProperty(value = "音乐简介")
     String musicDescribe;

    @ApiModelProperty(value = "音乐类型(风格)")
     String musicType;

    @NotNull
    @ApiModelProperty(value = "插件名称" ,example = "Jsososo+QQAPI" ,notes = "目前支持 Jsososo+QQAPI,wp-qq,wp-kw,wp-kg")
     String plugName;

    @NotNull
    @ApiModelProperty(value = "插件数据" )
    HashMap<String,String> PlugData;

    @NotNull
    @ApiModelProperty(value = "是否保存，保存的话useruuid必传",required = true)
    Boolean isSave;

//    @NotNull
//    @ApiModelProperty(value = "用户id")
//    String UserUUID;

    @NotNull
    @ApiModelProperty(value = "保存到指定歌单uuid")
    String playUUID;



}
